import os

class Config:
    # --- 通用设置 ---
    RUN_MODE = "camera"  # "image" (图片模式) 或 "camera" (摄像头模式)

    # --- 路径配置 ---
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    YOLO_CFG = os.path.join(BASE_DIR, 'yolov3-coco', 'yolov3.cfg')
    YOLO_WEIGHTS = os.path.join(BASE_DIR, 'yolov3-coco', 'yolov3.weights')
    YOLO_LABELS_FILE = os.path.join(BASE_DIR, 'yolov3-coco', 'coco-labels') # 标签文件路径
    TEST_IMAGE_PATH = os.path.join(BASE_DIR, 'test_image.jpg')

    # --- YOLO 参数 ---
    CONF_THRESHOLD = 0.5 # 置信度阈值
    NMS_THRESHOLD = 0.4  # 非极大值抑制阈值
    IMG_WIDTH = 416      # 模型输入图片宽度
    IMG_HEIGHT = 416     # 模型输入图片高度

    # --- 摄像头设置 (如果 RUN_MODE 是 "camera") ---
    CAMERA_INDEX = 0  # 默认摄像头索引 (例如, 0 代表内置摄像头)
    FRAME_RATE = 30   # 摄像头实时模式下的期望帧率

    # --- 交通灯颜色识别参数 ---
    SAT_LOW_THRESHOLD = 1.3  # 用于确定饱和度下限的平均饱和度乘数
    VAL_LOW_THRESHOLD = 140  # 亮度 (值) 的固定下限 (可后续自适应)

    # --- 目标识别配置 ---
    DETECT_ALL_CLASSES = 1 # 是否检测所有标签 (True: 检测所有, False: 检测 TARGET_CLASSES 中指定的标签)
    TARGET_CLASSES = ['traffic light'] # 要检测和分类的类别列表